函式基礎
定義>呼叫
1.先def定義(建立)函式
2.才能呼叫(使用)函式
#有呼叫才會“執行”程式
記得tab縮排
def 函式名稱(參數名稱):
函式內部的程式碼
備註:參數不一定要寫
def sayHello():
print("Hello")
#此步驟“不會”跑程式因為還沒有呼叫
#命名不能用中文開頭不能用數字
程式跳到函式的裡面
此步驟才會跑程式
函式名稱(參數資料)
sayHello()
定義可以印出任何訊息的函式
def say(Msg):
print(Msg)
這邊的Msg類似變數的功能
把參數的資料印出來
定義一個可以做加法的函式
def add(n1, n2):
result=n1+n2
print(result)
定義一個印出Hello的函式
def sayHello():
print("Hello")
def say(Msg):
print(Msg)
呼叫上方定義的函式:
say("HIHI") #將字串中的資料丟入Msg裡當"參數"印出
say("OKOK")
#HIHI
#OKOK
備註:參數讓我們的程式有彈性
定義一個可以做加法的函式
def add(n1, n2):
result=n1+n2
print(result)
呼叫函式
add(3,4)
#7
回傳值=函式結束時丟回來的東西(給電腦的結果
函式在結束都有回傳值
print() 回傳值永遠是None
return不一定會呈現
若無呈現,回傳值永遠是None
除非有打出return指定
def 函式名稱(參數名稱):
函式內部的程式碼
return 資料 #結束函式
回傳資料,若無資料,回傳值預設: None
備註:
如果只有return 回傳值為 None
如果 return 後面有"資料",回傳值以"資料"為主
函式內部的程式碼:如果沒有呼叫,就不會執行
定義:
def mutiply():
print(3*4)
mutiply()
#12
但寫死,呼叫執行永遠都是12/回傳值=none
增加彈性的寫法(如下
def mutiply(n1, n2):
print(n1*n2)
mutiply(3,5)
# 15
mutiply(6*2)
# 12
# 回傳值=none
綜合
def mutiply()
print(n1*n2) #印給人類看
return 10 #給電腦看
value=mutiply(3,5)
#程式帶入先印出15
然後回傳值帶入value再印出10
程式若有從"函式外部"繼續操作資料的需求
可使用回傳值
有回傳值才能把結果帶出來繼續操作
def mutiply(n1, n2):
return (n1*n2) #若沒有這行回傳,就會變成none,就無法做運算
value=mutiply(3,5)+mutiply(2,6) #value= 回傳15+回傳12 的概念
print(value)
#15+12=27
程式包裝=重複的邏輯可重複利用
函式最大的用途就是作程式的包裝
當類似工作重複出現可重複利用
sum=0
for n in range(1,11):
sum=sum+n
print(sum)
#55
sum=0
for n in range(1,21):
sum=sum+n
print(sum)
#210
等等等...
以上程式因架構重複
故可包裝程式:
定義:
def calculate(n):
sum=0
for n in range(n+1): #從1到n
sum=sum+n #sum+=n
print(sum)
呼叫:
calculate(10) #加總 1+...+10=55
參數有兩個
定義:
def calculate(start, end):
sum=0
for n in range(start, end+1): #從S到E
sum=sum+n #sum+=n
print(sum)
calculate(1,10) #加總 1+...+10=55
1, rang(n) # 從 0 到 n-1
2, rang(a, b) # 從 a 到 b-1
3, rang(a, b, step) 從 a 開始每次加 step 到 b 之前
1,
rang(n) # 從 0 到 n-1
for i in range(5):
print(i) # 0,1,2,3,4
2,
rang(a, b) # 從 a 到 b-1
0+到5
for i in range(0, 6):
print(i) # 0,1,2,3,4,5
若想要包含終點2+到6
n+1
for i in range(0, 7): #6+1=7
print(i) # 0,1,2,3,4,5,6
3,
rang(a, b, step) #step=步數,預設1
從 a 開始每次加 step 到 b 之前
第一種:正向迴圈-遞增
for i in range(0, 10, 2):
print(i) # 2,4,6,8,10
第二種:倒數迴圈-遞減
for i in range(10, 0, -2):
print(i) # 10,8,6,4,2